home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Games / MAME / src / sndhrdw / mcr.h < prev    next >
C/C++ Source or Header  |  2000-04-08  |  4KB  |  169 lines

  1. /***************************************************************************
  2.  
  3.     sndhrdw/mcr.c
  4.  
  5.     Functions to emulate general the various MCR sound cards.
  6.  
  7. ***************************************************************************/
  8.  
  9. #include "machine/6821pia.h"
  10.  
  11.  
  12.  
  13. /************ Generic MCR routines ***************/
  14.  
  15. void mcr_sound_init(void);
  16.  
  17. WRITE_HANDLER( ssio_data_w );
  18. READ_HANDLER( ssio_status_r );
  19. void ssio_reset_w(int state);
  20.  
  21. WRITE_HANDLER( csdeluxe_data_w );
  22. READ_HANDLER( csdeluxe_status_r );
  23. void csdeluxe_reset_w(int state);
  24.  
  25. WRITE_HANDLER( turbocs_data_w );
  26. READ_HANDLER( turbocs_status_r );
  27. void turbocs_reset_w(int state);
  28.  
  29. WRITE_HANDLER( soundsgood_data_w );
  30. READ_HANDLER( soundsgood_status_r );
  31. void soundsgood_reset_w(int state);
  32.  
  33. WRITE_HANDLER( squawkntalk_data_w );
  34. void squawkntalk_reset_w(int state);
  35.  
  36. WRITE_HANDLER( advaudio_data_w );
  37. void advaudio_reset_w(int state);
  38.  
  39.  
  40.  
  41. /************ Sound Configuration ***************/
  42.  
  43. extern UINT8 mcr_sound_config;
  44.  
  45. #define MCR_SSIO                0x01
  46. #define MCR_CHIP_SQUEAK_DELUXE    0x02
  47. #define MCR_SOUNDS_GOOD            0x04
  48. #define MCR_TURBO_CHIP_SQUEAK    0x08
  49. #define MCR_SQUAWK_N_TALK        0x10
  50. #define MCR_WILLIAMS_SOUND        0x20
  51.  
  52. #define MCR_CONFIGURE_SOUND(x) \
  53.     mcr_sound_config = x
  54.  
  55.  
  56.  
  57. /************ SSIO CPU and sound definitions ***************/
  58.  
  59. extern struct MemoryReadAddress ssio_readmem[];
  60. extern struct MemoryWriteAddress ssio_writemem[];
  61.  
  62. extern struct AY8910interface ssio_ay8910_interface;
  63.  
  64. #define SOUND_CPU_SSIO                                \
  65.     {                                                \
  66.         CPU_Z80 | CPU_AUDIO_CPU,                    \
  67.         2000000,    /* 2 Mhz */                        \
  68.         ssio_readmem,ssio_writemem,0,0,                \
  69.         interrupt,26                                \
  70.     }
  71.  
  72. #define SOUND_SSIO                                     \
  73.     {                                                \
  74.         SOUND_AY8910,                                \
  75.         &ssio_ay8910_interface                        \
  76.     }
  77.  
  78.  
  79.  
  80. /************ Chip Squeak Deluxe CPU and sound definitions ***************/
  81.  
  82. extern struct MemoryReadAddress csdeluxe_readmem[];
  83. extern struct MemoryWriteAddress csdeluxe_writemem[];
  84.  
  85. extern struct DACinterface mcr_dac_interface;
  86.  
  87. #define SOUND_CPU_CHIP_SQUEAK_DELUXE                \
  88.     {                                                \
  89.         CPU_M68000 | CPU_AUDIO_CPU,                    \
  90.         15000000/2,    /* 7.5 Mhz */                    \
  91.         csdeluxe_readmem,csdeluxe_writemem,0,0,        \
  92.         ignore_interrupt,1                            \
  93.     }
  94.  
  95. #define SOUND_CHIP_SQUEAK_DELUXE                    \
  96.     {                                                \
  97.         SOUND_DAC,                                    \
  98.         &mcr_dac_interface                            \
  99.     }
  100.  
  101.  
  102.  
  103. /************ Sounds Good CPU and sound definitions ***************/
  104.  
  105. extern struct MemoryReadAddress soundsgood_readmem[];
  106. extern struct MemoryWriteAddress soundsgood_writemem[];
  107.  
  108. extern struct DACinterface mcr_dual_dac_interface;
  109.  
  110. #define SOUND_CPU_SOUNDS_GOOD                        \
  111.     {                                                \
  112.         CPU_M68000 | CPU_AUDIO_CPU,                    \
  113.         16000000/2,    /* 8.0 Mhz */                    \
  114.         soundsgood_readmem,soundsgood_writemem,0,0,    \
  115.         ignore_interrupt,1                            \
  116.     }
  117.  
  118. #define SOUND_SOUNDS_GOOD SOUND_CHIP_SQUEAK_DELUXE
  119.  
  120.  
  121.  
  122. /************ Turbo Chip Squeak CPU and sound definitions ***************/
  123.  
  124. extern struct MemoryReadAddress turbocs_readmem[];
  125. extern struct MemoryWriteAddress turbocs_writemem[];
  126.  
  127. #define SOUND_CPU_TURBO_CHIP_SQUEAK                    \
  128.     {                                                \
  129.         CPU_M6809 | CPU_AUDIO_CPU,                    \
  130.         9000000/4,    /* 2.25 Mhz */                    \
  131.         turbocs_readmem,turbocs_writemem,0,0,        \
  132.         ignore_interrupt,1                            \
  133.     }
  134.  
  135. #define SOUND_TURBO_CHIP_SQUEAK SOUND_CHIP_SQUEAK_DELUXE
  136.  
  137. #define SOUND_CPU_TURBO_CHIP_SQUEAK_PLUS_SOUNDS_GOOD \
  138.     SOUND_CPU_TURBO_CHIP_SQUEAK,                    \
  139.     SOUND_CPU_SOUNDS_GOOD
  140.  
  141. #define SOUND_TURBO_CHIP_SQUEAK_PLUS_SOUNDS_GOOD    \
  142.     {                                                \
  143.         SOUND_DAC,                                    \
  144.         &mcr_dual_dac_interface                        \
  145.     }
  146.  
  147.  
  148.  
  149. /************ Squawk & Talk CPU and sound definitions ***************/
  150.  
  151. extern struct MemoryReadAddress squawkntalk_readmem[];
  152. extern struct MemoryWriteAddress squawkntalk_writemem[];
  153.  
  154. extern struct TMS5220interface squawkntalk_tms5220_interface;
  155.  
  156. #define SOUND_CPU_SQUAWK_N_TALK                        \
  157.     {                                                \
  158.         CPU_M6802 | CPU_AUDIO_CPU,                    \
  159.         3580000/4,    /* .8 Mhz */                    \
  160.         squawkntalk_readmem,squawkntalk_writemem,0,0,\
  161.         ignore_interrupt,1                            \
  162.     }
  163.  
  164. #define SOUND_SQUAWK_N_TALK                            \
  165.     {                                                \
  166.         SOUND_TMS5220,                                \
  167.         &squawkntalk_tms5220_interface                \
  168.     }
  169.